iT邦幫忙

1

[simple-mips] 一個簡單的 5 stage CPU

  • 分享至 

  • xImage
  •  

系列文章 : 使用 Verilog 實作 in-order CPU

這邊的練習是來自陽明交通大學的計算機組織作業。
雖然我沒有上過陽明交通大學的計算機組織,但網路發達的年代,還是能找到計算機組織的作業內容,並練習,真是太棒了! 感謝好心人的分享。
https://github.com/Sea-n/NCTU-109B-Comp-Org/tree/master

這個練習基本上涵蓋計算機組織第四章( 處理器 )的一部分,學習如何實作一個有管道化 ( pipeline ) 的處理器。
https://www.tenlong.com.tw/products/9786267130681?list_name=trs-t

推薦可以買一本!放在家裡供奉著,也會感覺自己的智商提升了一點點。
我自己是買中文翻譯版本,因為比較便宜...
一千多元可不是一筆小數目! 學生的時候買不起,成為社畜之後終於可以狠下心的買下來了。

根據課本的內容,可以得知課本內的 pipeline 經典設計涵蓋了 5 個階段。

  • instruction fetch ( IF )
    • 負責把 instruction 從 memory 讀取出來
  • instruction decode ( ID )
    • 負責把 instruction 解析成若干個控制訊號
    • 例如 : 這個 instruction 是一個 branch 嗎 ? 這個 instruction 會需要寫資料進記憶體嗎 ?
    • 另外也負責從 register file 裡面取值
  • execute ( EX )
    • 利用 ALU 去進行計算
    • 這個值可能會被用作
      • 更新 register file
      • 將結果寫入記憶體
      • 比較兩個數的大小 ( 例如 a > b 回 1, a <= 回 0 )
  • memory ( MEM )
    • 對 memory 讀取/寫入資料
  • write back ( WB )
    • 將資料寫回 register file

這是這本聖經本所講述的是 5 stages pipeline ( 五階段管道 ) 經典設計。真正寫 verilog 的人當然可以自己設計 3 stages, 4 stages, 8 stages … 只是聖經本針對 5 stages pipeline 這個經典設計進行教學。

根據作業的要求
https://github.com/TommyWu-fdgkhdkgh/simple-mips/blob/main/spec.pdf

  • 需要實作的 instruction
    • ADD
    • ADDI
    • SUB
    • AND
    • OR
    • SLT
    • SLTI
    • LW
    • SW
    • MULT
    • BEQ
    • BNE
    • BGE
    • BGT
  • 實作 Hazard Detection Unit 以及 Forwarding Unit
  • 必要時,stall pipeline

另外作業裡面,也有附設計圖,接下來就開始根據作業需求,以及作業提供的提示來實作這顆 CPU 吧!
https://ithelp.ithome.com.tw/upload/images/20260206/20180992LjIwS8h7ym.png

參考連結


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言